package Controlador;

import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Calendar;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import Modelo.Equipo;
import Modelo.Umpire;
import Principal.Liga;
import Vistas.VEquipo;
import Vistas.VUmpire;

public class CEquipo implements ActionListener {

	// vista y modelo que manejara el controlador
			private VEquipo vista ;
			
			
			
			// constructor de la clase
			public CEquipo(VEquipo vista) {
				super();
				this.vista = vista;
				
			}
	
	@Override
	public void actionPerformed(ActionEvent ae) {
		
		if (ae.getActionCommand().equalsIgnoreCase("Limpiar")){
			limpiar();
			
		}
		if (ae.getActionCommand().equalsIgnoreCase("Salir")){
			vista.dispose();
			
		}
		if (ae.getActionCommand().equalsIgnoreCase("Registrar")){
			int anno;
			if (vista.getTxtAnnoFundacion().getText().equalsIgnoreCase("")){
				 anno = 0;
			}else {
				 anno = Integer.parseInt(vista.getTxtAnnoFundacion().getText());
					
			}
			
			//String archivo = System.getProperty("user.dir")+"\\src\\Archivos\\"+vista.getCmbjugadores().getValue().toString()+".txt";
			String archivo = System.getProperty("user.dir")+ System.getProperty("file.separator") +"src" +System.getProperty("file.separator")+
			"Archivos"+System.getProperty("file.separator")+vista.getCmbjugadores().getValue().toString()+".txt";
			
			String nombreEquipo = vista.getTxtNombreEquipo().getText();
			String nombreEstadio = vista.getTxtNombreEstadio().getText();
			String ciudad = vista.getTxtCiudad().getText();
			String codigo = Integer.toString(Liga.equipos.size() +1);
			try {
				if (validarFecha(anno)&&validarCampos()&&validarArchivo(archivo)){
				    Equipo equipo = new Equipo(codigo,nombreEquipo,ciudad,nombreEstadio,anno,0,0,0);
					equipo.cargarJugadores(archivo);
				    Liga.equipos.add(equipo);
					
					JOptionPane.showMessageDialog(new JFrame(), "Registrado Exitosamente","Registro",JOptionPane.INFORMATION_MESSAGE);
					limpiar();
				}
			} catch (HeadlessException e) {
				
				e.printStackTrace();
			} catch (IOException e) {
				
				e.printStackTrace();
			}
			
	
}// fin el if registrar
		
	}// fin del metodo action performed
	
	
	private boolean validarFecha(int anno){
		boolean respuesta = true;
		if (anno < 1910 || anno > 2008){
			JOptionPane.showMessageDialog(new JFrame(), "El anno de fundado debe estar" +
					" comprendido entre 1910 y 2008","Validar Fecha",JOptionPane.WARNING_MESSAGE);
			respuesta = false;
		}
	
	return respuesta;	
	}

	private boolean validarCampos(){
		boolean respuesta = true;
		if (vista.getTxtNombreEquipo().getText().equalsIgnoreCase("")||
				vista.getTxtCiudad().getText().equalsIgnoreCase("") ||
				vista.getTxtAnnoFundacion().getText().equalsIgnoreCase("")||
				vista.getTxtNombreEstadio().getText().equalsIgnoreCase("")){
			JOptionPane.showMessageDialog(new JFrame(), "Todos los campos deben" +
					" estar LLenos","Validar Campos",JOptionPane.WARNING_MESSAGE);
			
			respuesta = false;
		}
		
		return respuesta;
		
	}
	
private boolean validarArchivo(String archivo) throws IOException{
	
	
	if (Equipo.leerArchivo(archivo)){
		
		return true;
	} 
		
	
	return false;
}	// fin del metodo



private void limpiar(){
	vista.getTxtNombreEquipo().setText("");
	vista.getTxtCiudad().setText("");
	vista.getTxtAnnoFundacion().setText("");
	vista.getTxtNombreEstadio().setText("");
	
}

}
